summaryrefslogtreecommitdiff
path: root/app/[lng]/engineering/(engineering)/pq/[vendorId]/page.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'app/[lng]/engineering/(engineering)/pq/[vendorId]/page.tsx')
-rw-r--r--app/[lng]/engineering/(engineering)/pq/[vendorId]/page.tsx108
1 files changed, 0 insertions, 108 deletions
diff --git a/app/[lng]/engineering/(engineering)/pq/[vendorId]/page.tsx b/app/[lng]/engineering/(engineering)/pq/[vendorId]/page.tsx
deleted file mode 100644
index 76bcfe59..00000000
--- a/app/[lng]/engineering/(engineering)/pq/[vendorId]/page.tsx
+++ /dev/null
@@ -1,108 +0,0 @@
-import * as React from "react"
-import { Shell } from "@/components/shell"
-import { type SearchParams } from "@/types/table"
-import { getPQDataByVendorId, getVendorPQsList, loadGeneralPQData, loadProjectPQAction, loadProjectPQData } from "@/lib/pq/service"
-import { Vendor } from "@/db/schema/vendors"
-import { findVendorById } from "@/lib/vendors/service"
-import VendorPQAdminReview from "@/components/pq/pq-review-detail"
-import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"
-import { Badge } from "@/components/ui/badge"
-
-interface IndexPageProps {
- params: {
- vendorId: string
- }
- searchParams: Promise<SearchParams>
-}
-
-export default async function PQReviewPage(props: IndexPageProps) {
- const resolvedParams = await props.params
- const vendorId = Number(resolvedParams.vendorId)
-
- // Fetch the vendor data
- const vendor: Vendor | null = await findVendorById(vendorId)
- if (!vendor) return <div>Vendor not found</div>
-
- // Get list of all PQs (general + project-specific) for this vendor
- const pqsList = await getVendorPQsList(vendorId)
-
- // Determine default active PQ to display
- // If query param projectId exists, use that, otherwise use general PQ if available
- const searchParams = await props.searchParams
- const activeProjectId = searchParams.projectId ? Number(searchParams.projectId) : undefined
-
- // If no projectId query param, default to general PQ or first project PQ
- const defaultTabId = activeProjectId ?
- `project-${activeProjectId}` :
- (pqsList.hasGeneralPq ? 'general' : `project-${pqsList.projectPQs[0]?.projectId}`)
-
- // Fetch PQ data for the active tab
- let pqData;
- if (activeProjectId) {
- // Get project-specific PQ data
- pqData = await getPQDataByVendorId(vendorId, activeProjectId)
- } else {
- // Get general PQ data
- pqData = await getPQDataByVendorId(vendorId)
- }
-
- return (
- <Shell className="gap-2">
- {pqsList.hasGeneralPq || pqsList.projectPQs.length > 0 ? (
- <Tabs defaultValue={defaultTabId} className="space-y-4">
- <div className="flex justify-between items-center">
- <h1 className="text-2xl font-bold">
- {vendor.vendorName} PQ Review
- </h1>
-
- <TabsList>
- {pqsList.hasGeneralPq && (
- <TabsTrigger value="general">
- General PQ <Badge variant="outline" className="ml-2">Standard</Badge>
- </TabsTrigger>
- )}
-
- {pqsList.projectPQs.map((project) => (
- <TabsTrigger key={project.projectId} value={`project-${project.projectId}`}>
- {project.projectName} <Badge variant="outline" className="ml-2">{project.status}</Badge>
- </TabsTrigger>
- ))}
- </TabsList>
- </div>
-
- {/* Tab content for General PQ */}
- {pqsList.hasGeneralPq && (
- <TabsContent value="general" className="mt-0">
- <VendorPQAdminReview
- data={activeProjectId ? [] : pqData}
- vendor={vendor}
- projectId={undefined}
- loadData={loadGeneralPQData}
- pqType="general"
- />
- </TabsContent>
- )}
-
- {/* Tab content for each Project PQ */}
- {pqsList.projectPQs.map((project) => (
- <TabsContent key={project.projectId} value={`project-${project.projectId}`} className="mt-0">
- <VendorPQAdminReview
- data={activeProjectId === project.projectId ? pqData : []}
- vendor={vendor}
- projectId={project.projectId}
- projectName={project.projectName}
- projectStatus={project.status}
- loadData={loadProjectPQAction}
- pqType="project"
- />
- </TabsContent>
- ))}
- </Tabs>
- ) : (
- <div className="text-center py-10">
- <h2 className="text-xl font-medium">No PQ submissions found for this vendor</h2>
- </div>
- )}
- </Shell>
- )
-} \ No newline at end of file